package demo03;

import java.util.Random;
import java.util.Scanner;

/*
 * 题目：用代码模拟猜数字的小游戏。
 * 
 * 思路：
 * 1. 产生一个随机数字，并且一旦产生就不再变化
 * 2. 使用Scanner实现键盘输入，nextInt方法接收猜的数字
 * 3. 已经得到随机数与猜的数字，进行判断：
 *  如果猜的数字>随机数，提示太大，并重试；
 *  如果猜的数字<随机数，提示太小，并重试；
 *  如果猜中了，游戏结束
 * 4. 没猜中就继续游戏，使用while(true)无限循环
 * 5. 游戏也无限循环，直到输入-1停止游戏
 */
public class Demo03RandomGame {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int gus = 1; // gus赋初始值，可进入循环
        
        while (gus != -1) { // 重复游戏程序
            int num = new Random().nextInt(100) + 1; // 一次游戏只产生一个随机数
            System.out.println("猜数字游戏开始，范围1-100，-1结束游戏：");
            gus = sc.nextInt(); // 游戏开始后第一次获取键盘输入数字

            while (true) { // 猜数循环
                if (gus == -1) {
                    break; // gus为-1则跳出循环，结束程序
                } else if (gus < num) {
                    System.out.println("数字小了");
                } else if (gus > num) {
                    System.out.println("数字大了");
                } else {
                    System.out.println("猜中了，数字是：" + num);
                    break; // 数字猜中同样跳出循环，并继续执行程序
                }
                gus = sc.nextInt(); // 没猜对，重新获取数字
            }
        }
        System.out.println("游戏结束，退出程序");
    }
}
